Pracovní plocha Spreadsheet umožňuje vytvářet a upravovat tabulkové dokumenty, používat data z tabulky jako parametry v modelu, vyplňovat tabulku daty získanými z modelu, provádět výpočty a exportovat data do jiných tabulkových aplikací, jako jsou LibreOffice nebo Microsoft Excel.
Tabulka, v níž jsou některé buňky vyplněny textem a číselnými hodnotami
Upozorňujeme, že smazání nebo odstranění buněk s daty může způsobit poškození tabulky a vašeho modelu, pokud na nich model závisí. V takovém případě nebudete předem upozorněni.
Řádky a sloupce lze vkládat nebo odstraňovat tak, že kliknete pravým tlačítkem myši na záhlaví řádku nebo sloupce a z kontextového menu vyberete příslušnou možnost. Nejprve je možné vybrat více řádků nebo sloupců. Buď podržením klávesy Ctrl při výběru záhlaví, nebo podržením levého tlačítka myši a tažením.
Obsah buňky lze upravit tak, že buňku vyberete a zadáte hodnotu do vstupního pole Content v horní části okna. Chcete-li buňku upravit přímo na místě, vyberte ji a stiskněte klávesu F2 nebo na ni dvakrát klikněte.
Tato operace odstraní obsah, vlastnosti a aliasy buněk. Chcete-li odstranit pouze jejich obsah, je třeba buňky místo toho upravit.
Při operacích vyjmout a kopírovat se do schránky uloží obsah, vlastnosti a aliasy buněk. Při operaci vložit se data zapíší tak, že obsah buněk v levém horním rohu uložených dat se vloží do aktivní buňky. Ostatní uložený obsah se umístí relativně k této buňce. Vzorce se odpovídajícím způsobem aktualizují. Aliasy se vloží pouze v případě, že jsou jedinečné.
Vlastnosti buňky tabulky lze upravit tak, že na ni kliknete pravým tlačítkem myši a z kontextového menu vyberete Vlastnosti…. Zobrazí se následující dialogové okno:
Jak naznačují záložky, lze změnit následující vlastnosti:
Buňka tabulky může obsahovat číslo, text nebo výraz. Výrazy musí začínat rovnítkem '='.
Výrazy v buňkách mohou obsahovat čísla, funkce, odkazy na jiné buňky a odkazy na vlastnosti modelu (viz však níže uvedená sekced Aktuální omezení). Na buňku lze odkazovat pomocí její adresy (velké písmeno sloupce + číslo řádku, např. B4) nebo pomocí jejího aliasu.
Poznámka: FreeCAD zachází s výrazem v buňkách jako s programovacím kódem. Při úpravách buňky se proto může stát, že zobrazený obsah nebude odpovídat vašim nastaveným zobrazením:
Odkazy na objekty v modelu jsou vysvětleny níže v sekci Odkazy na CAD data. Použití hodnot buněk tabulkového procesoru k definování vlastností modelu je vysvětleno níže v sekci Data tabulkového procesoru ve výrazech. Další informace o výrazech a dostupných funkcích najdete v sekci Výrazy.
Data v buňkách tabulky lze použít ve vzorcích parametrů CAD modelu. Tabulku tak lze využít jako zdroj hodnot parametrů používaných v celém modelu, čímž se tyto hodnoty efektivně shromáždí na jednom místě. Jakmile dojde ke změně hodnot v tabulce, promítnou se do celého modelu.
Stejně tak lze vlastnosti objektů z CAD modelu použít ve vzorcích v buňkách tabulky. To umožňuje v tabulce využívat vlastnosti objektů, jako je objem nebo plocha. Pokud dojde ke změně názvu objektu v CAD modelu, tato změna se automaticky promítne do všech odkazů ve vzorcích tabulky, které tento změněný název používají.
V jednom dokumentu lze použít více než jednu tabulku. Tabulku lze identifikovat buď podle jejího názvu, nebo podle jejího označení.
FreeCAD při vytvoření tabulky automaticky přiřadí jedinečný název. Tyto názvy mají formát Spreadsheet, Spreadsheet001, Spreadsheet002 a tak dále. Název nelze změnit a není viditelný ve vlastnostech tabulky. Lze ho použít k odkazu na tabulku ve výrazech (viz Data tabulky ve výrazech níže).
Název spreadsheetu se při jeho vytvoření automaticky nastaví na název tabulky. Na rozdíl od názvu lze tento název změnit, například v panelu vlastností nebo pomocí příkazu „Přejmenovat“ v kontextovém menu. Ve výchozím nastavení FreeCAD nedovoluje duplicitní názvy listů, ale existuje nastavení, kterým lze toto omezení zrušit. Na listy se stejnými názvy v rámci jednoho dokumentu nelze odkazovat pomocí jejich názvu.
FreeCAD kontroluje cyklické závislosti. Viz Aktuální omezení.
Jak již bylo uvedeno výše, ve vzorcích tabulkového procesoru lze odkazovat na data z CAD modelu.
Následující tabulka uvádí několik příkladů za předpokladu, že model obsahuje prvek s názvem "MyCube":
| CAD-data | Buňka v tabulce | Výsledek |
|---|---|---|
| Parametrická délka Part-Workbench krychle | =MyCube.Length
|
Délka v jednotkách mm |
| Objem krychle | =MyCube.Shape.Volume
|
Objem v mm³ bez jednotek |
| Typ tvaru krychle | =MyCube.Shape.ShapeType
|
Řetězec: Solid |
| Návěstí krychle | =MyCube.Label
|
Řetězec: MyCube |
| Souřadnice X těžiště krychle | =MyCube.Shape.CenterOfMass.x
|
Souřadnice v mm bez jednotek |
Chcete-li použít data z tabulky v jiných částech programu FreeCAD, obvykle vytvoříte výraz, který odkazuje na tabulku a buňku obsahující data, která chcete použít. Tabulky můžete identifikovat podle názvu nebo štítku a buňky podle adresy nebo aliasu. Pro všechny způsoby odkazování je k dispozici funkce automatického doplňování.
| Tabulka podle názvu | Tabulka podle návěstí | |
|---|---|---|
| Buňka podle adresy | =Spreadsheet042.B5
|
=<<MySpreadsheet>>.B5
|
| Buňka podle Alias | =Spreadsheet042.MyAlias
|
=<<MySpreadsheet>>.MyAlias
|
Doporučeným způsobem odkazování na data v tabulce je použití názvu tabulky a aliasu buňky. Podrobnější vysvětlení výhod a nevýhod jednotlivých způsobů odkazování najdete v následující podrobnější části.
Použití návěstí tabulky má tu výhodu, že ho lze libovolně měnit tak, aby popisoval obsah tabulky. Také je snazší identifikovat používanou tabulku, protože text ve výrazu odpovídá popisku zobrazenému v zobrazení modelu a vlastností. Pokud se rozhodnete změnit název listu, budou stávající odkazy na jeho obsah aktualizovány, takže přejmenováním listu nedojde k narušení funkčnosti vašich výrazů. Interní název listu není nikde snadno dostupný, s výjimkou editoru výrazů, takže pokud tento interní název použijete a později se rozhodnete listy přejmenovat, může být obtížné vysledovat, odkud data ve vašich výrazech pocházejí.
Mějte na paměti, že při vytvoření nového listu se jeho název shoduje s označením, takže se snadno může stát, že omylem použijete název listu namísto jeho označení. Jednoduchým způsobem, jak tomu zabránit, je pojmenovat list smysluplným názvem ještě předtím, než ho začnete používat ve vzorcích.
Ačkoli můžete ve výrazu k odkazování na buňku použít číslo řádku a sloupce, doporučuje se buňce přiřadit alias a používat ho. Informace o tom, jak alias nastavit, najdete v článku Vlastnosti buněk. Například pokud data v buňce B1 obsahují parametr délky pro objekt, alias MyObject_Length umožní odkazovat na tuto hodnotu jako <<MyParams>>.MyObject_Length namísto Spreadsheet.B1. Aliasy jsou nejen mnohem srozumitelnější a přehlednější, ale také se mnohem snáze mění, pokud se rozhodnete upravit strukturu tabulky. Použití aliasu má také tu výhodu, že je snazší rozpoznat, které buňky se používají k ovládání jiných částí dokumentu. Upozorňujeme, že FreeCAD automaticky upraví poziční odkazy ve výrazech, pokud do tabulky vložíte nebo odstraníte řádky a sloupce, takže i když ve výrazu používáte čísla řádků a sloupců, můžete vkládat řádky a sloupce, aniž by došlo k porušení odkazů na okolní buňky.
Úprava tabulky spustí přepočítání 3D modelu, i když se změny modelu nijak nedotýkají. U složitých modelů může přepočítání trvat dlouho a čekání po každé jednotlivé úpravě je samozřejmě dost nepříjemné.
Existují tři možnosti, jak tento problém vyřešit:
#PENDING.=NameOfFile#<<MySpreadsheet>>.MyAlias.
Tabulkový procesor pracuje s pojmem rozměru (jednotky) přiřazeného hodnotám v buňkách. Číslo zadané bez přiřazené jednotky nemá žádný rozměr. Jednotku je třeba zadat bezprostředně za číselnou hodnotou, bez mezery mezi nimi. Pokud je k číslu přiřazena jednotka, bude se tato jednotka používat ve všech výpočtech. Například vynásobením dvou délek s jednotkou mm získáme plochu s jednotkou mm².
Pokud buňka obsahuje hodnotu představující veličinu, měla by být zadána spolu s příslušnou jednotkou. Ačkoli v mnoha jednoduchých případech lze vystačit s hodnotou bez jednotky, není rozumné jednotku nezadávat. Pokud je hodnota představující veličinu zadána bez příslušné jednotky, existují určité posloupnosti operací, které způsobí, že FreeCAD nahlásí neslučitelné jednotky ve výrazu, i když by se zdálo, že by měl být platný. (To lze lépe pochopit po přečtení tohoto vlákna na fórech FreeCADu.)
Zobrazené jednotky hodnoty buňky můžete změnit pomocí dialogového okna Vlastnosti buňky. Tím se nezmění hodnota obsažená v buňce; dojde pouze k převodu stávající hodnoty pro účely zobrazení. Hodnota použitá pro výpočty se nezmění a nezmění se ani výsledky vzorců, které tuto hodnotu používají. Například buňka obsahující hodnotu "5,08cm" může být zobrazena jako "2in" změnou hodnoty na kartě jednotek na "in".
V dialogovém okně vlastností buňky nelze bezrozměrné číslo převést na číslo s jednotkou. Je možné zadat řetězec jednotky, který se sice zobrazí, ale buňka bude i nadále obsahovat bezrozměrné číslo. Chcete-li bezrozměrnou hodnotu převést na hodnotu s jednotkou, je nutné hodnotu znovu zadat spolu s příslušnou jednotkou.
Někdy může být žádoucí odstranit z výrazu určitou veličinu. Toho lze dosáhnout vynásobením číslem 1 a jeho reciprokou jednotkou.
Tabulky z FreeCADu lze importovat a exportovat do formátu CSV, který je kompatibilní s většinou ostatních tabulkových procesorů, jako jsou Microsoft Excel nebo LibreOffice Calc. Další informace najdete na stránkách Import tabulek a Export tabulek.
Tabulky ve Excel-formátu XLSX lze importovat pomocí příkazu Std Import nebo Std Otevřít. Podporovány jsou následující funkce:
Ostatní funkce se do tabulky FreeCADu neimportují.
Aby bylo možné provést nastavení stránky potřebné pro tisk, tisknou se tabulky z FreeCADu tak, že se vloží do TechDraw zobrazení tabulky.
FreeCAD při přepočítávání kontroluje cyklické závislosti. Tato kontrola je záměrně omezena na úroveň objektu tabulky. Z tohoto důvodu byste neměli mít tabulku, která obsahuje jak buňky, jejichž hodnoty se používají k zadání parametrů modelu, tak buňky, jejichž hodnoty využívají výstupy z modelu. Například nelze mít buňky, které určují délku, šířku a výšku objektu, a zároveň další buňku, která odkazuje na celkový objem výsledného tvaru. Toto omezení lze obejít použitím dvou tabulek: jedna slouží jako zdroj dat pro vstupní parametry modelu a druhá pro výpočty založené na výsledných geometrických datech.
Obsah buněk lze propojit s jinými buňkami v tabulce. To se může hodit při práci s rozsáhlými tabulkami nebo při načítání obsahu buněk z jiné tabulky.
Chcete-li například propojit oblast buněk A3–C4 s oblastí buněk B1–D2:
Tabulka nyní může vypadat takto
Pomocí tabulkových procesorů můžete vytvářet konfigurační tabulky se sadami předdefinovaných parametrů pro váš model a poté dynamicky měnit, kterou konfiguraci použít. Podívejte se na návod Konfigurační tabulky. Pokud se chcete dozvědět více o vnitřním fungování této funkce, přečtěte si tento příspěvek na fóru.
import Spreadsheet
sheet = App.ActiveDocument.addObject("Spreadsheet::Sheet", "MySpreadsheet")
sheet.Label = "Dimensions"
sheet.set("A1", "10mm")
sheet.recompute()
sheet.get("A1")
sheet.setAlias("B1", "Diameter")
sheet.set("Diameter", "20mm")
sheet.recompute()
sheet.get("Diameter")
# sheet.get() results in an error if the cell is empty.
# sheet.getContents() can be used to check the cell first.
if sheet.getContents("C1"):
print(sheet.get("C1"))